#1. 列表的方法 sort
# 作用 : 对列表进行排序
# 语法 : list.sort(key=..., reverse=...)
# 参数 :
#       reverse: 如果为True则降序,如果为False则升序(默认False)
#       key: 用作排序比较键的函数
# 返回值 : sort()方法不返回任何值 即返回空(None)。相反，它将更改原始列表

# 原地排序
# a = [2,1,6,2,7,2,4,21]
# res = a.sort(reverse=True)
# print(res,a)

# key参数
# def takeSecond(elem):
#     return elem[1]
#
# b = [[1,5,1],[9,21,80],[40,7,6],[9,21,7]]
# b.sort(key=takeSecond,reverse=True)
# print(b)

#------------------------------------------------------------------------

#2. 内置方法 sorted
# 作用 : 返回排序列表
# 语法 : sorted(iterable, key=None, reverse=False)
# 参数 :
#       iterable:序列（字符串，元组，列表）或集合（集合，字典）
#       reverse: 如果为True则降序,如果为False则升序(默认False)
#       key: 用作排序比较键的函数
# 返回值: 返回排序后的列表,对原列表不影响

# a = [2,1,6,2,7,2,4,21]
# res = sorted(a)
# print(res)
# print(a)

# def takeSecond(elem):
#     return elem[1]
#
# b = [[1,5,1],[9,21,7],[40,7,6],[9,21,80]]
# res = sorted(b,key=takeSecond,reverse=True)
# print(res)

# 注意点: 排序按照的是ASCII表的顺序,数字和字母不要混合比较
# c = ["f","a","A","O","p","1"]
# c.sort()
# print(c)

print(sorted({1: 3, 20: 2, 4: 1}))